#!/bin/bash

# 后端启动脚本
# System Admin Backend Startup Script

set -e

echo "🚀 启动后端开发服务器..."
echo "================================"

# 检查 Node.js 版本
if ! command -v node &> /dev/null; then
    echo "❌ Node.js 未安装，请先安装 Node.js"
    exit 1
fi

echo "📦 Node.js 版本: $(node --version)"
echo "📦 npm 版本: $(npm --version)"

# 进入后端目录
cd "$(dirname "$0")/../backend"

echo "📁 当前目录: $(pwd)"

# 检查 package.json 是否存在
if [ ! -f "package.json" ]; then
    echo "❌ package.json 不存在，请检查后端目录"
    exit 1
fi

# 安装依赖（如果 node_modules 不存在）
if [ ! -d "node_modules" ]; then
    echo "📥 安装后端依赖..."
    npm install
fi

# 检查环境变量文件
if [ ! -f ".env" ]; then
    echo "⚠️  .env 文件不存在，创建示例配置..."
    cat > .env << EOF
# 数据库配置
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=admin
DB_PASSWORD=admin123
DB_DATABASE=system_admin

# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=redis123

# JWT 配置
JWT_SECRET=your_jwt_secret_key_here
JWT_REFRESH_SECRET=your_jwt_refresh_secret_key_here

# 服务器配置
PORT=3001
NODE_ENV=development
EOF
    echo "📝 已创建 .env 文件，请根据需要修改配置"
fi

# 检查端口是否被占用
PORT=3001
if lsof -i :$PORT &> /dev/null; then
    echo "⚠️  端口 $PORT 已被占用，尝试终止占用进程..."
    lsof -ti :$PORT | xargs kill -9 2>/dev/null || true
    sleep 2
fi

echo "🎯 启动后端开发服务器 (端口: $PORT)..."
echo "📖 API 地址: http://localhost:$PORT"
echo "📚 Swagger 文档: http://localhost:$PORT/api"
echo "🛑 按 Ctrl+C 停止服务"
echo "================================"

# 启动开发服务器
npm run start:dev